Gateway devices are devices that interconnect networks with different network protocol technologies by performing protocol conversions between the different network protocol technologies. Generally, a gateway device includes firmware that defines types of devices that may be managed by the gateway device, the device attributes of these devices, and how to communicate with and control these devices. The gateway device populates a local data store with information on a local network, including information on all of the local devices managed by the gateway, how to communicate with these devices, capabilities (e.g., device attributes) of these devices, and so on.
New types of devices are frequently developed. When a new device and/or new device attribute is developed, the firmware of a gateway device traditionally needs to be updated with information about that new device or new device attribute to enable the gateway device to manage that new device or to control the new device attributes. Absent such a firmware update, the gateway device may be unable to send commands to the new device, unable to understand responses from the new device, unable to use particular features of the new device, and so on. However, updating firmware of a gateway device consumes system resources and takes time. Additionally, each time device firmware is updated there is a chance that the firmware update will be unsuccessful and/or render the device non-functional.